#include "exceptions.h"

#include <QObject>

//Общее исключение
GenericException::GenericException()
{
    this->message = "";
}

GenericException::GenericException(QString message)
{
    this->message = message;
}

GenericException::~GenericException() throw() { }

const char* GenericException::what()
{
    return message.toStdString().c_str();
}

//Сигнал принятый входным пином
SignalException::SignalException(Pin *contact)
{
    this->connector = contact;
    message = QObject::tr("Not valid signal at output pin");
}

Pin* SignalException::getConnector()
{
    return this->connector;
}

//Доступ к несуществующему элементу массива
ArrayIndexError::ArrayIndexError()
{
    message = QObject::tr("Index out of range");
}

//Не найден выходной контакт
OutputNotFound::OutputNotFound(CircuitElement *element)
{
    this->element = element;
    message = QObject::tr("Not found output PIN on functional element");
}

const CircuitElement* OutputNotFound::getElement()
{
    return element;
}

LoadResourceException::LoadResourceException(const QString &filename)
{
    message = QObject::tr("Error load from file: " + filename.toAscii());
}
